# 导入 datetime 模块用于获取当前时间
import datetime

# 定义单号
order_id = "DH202311010001"
# 获取当前时间并格式化为指定格式
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 这里为了和示例一致，手动设置时间
time = "2023-11-01 20:56:15"

# 定义商品列表，每个元素是包含商品名称、数量、单价的元组
products = [
    ("金士顿U盘8G", 1, 40.00),
    ("胜创16GTF卡", 1, 50.00),
    ("读卡器", 1, 8.00),
    ("网线2米", 1, 5.00),
    ("可爱多",1,5.00)
]

# 计算商品总数
total_quantity = len(products)
# 计算商品总额（单价×数量之和）
total_amount = sum(price * quantity for _, quantity, price in products)
# 折扣率（8折，即0.8）
discount_rate = 0.78
# 计算折后总额
discounted_amount = total_amount * discount_rate
# 实收金额（这里假设为折后总额向上取整到整数）
received = int(discounted_amount) + (1 if discounted_amount % 1 > 0 else 0)
# 计算找零
change = received - discounted_amount

# 打印分隔符
print("." * 30)
# 打印单号
print(f"单号: {order_id}")
# 打印时间
print(f"时间: {time}")
# 打印分隔符
print("." * 30)
# 汇总信息右对齐，突出显示
print(f"{'名称':<10}{'数量':<6}{'单价':<8}{'金额':<8}")
for name, quantity, unit_price in products:
    # 计算单个商品金额
    amount = quantity * unit_price
    # 打印每个商品信息，格式化右对齐
    print(f"{name:<10}{quantity:<6}{unit_price:<8.2f}{amount:<8.2f}")
# 打印分隔符
print("." * 30)
# 打印总数和总额，格式化右对齐
print(f"总数: {total_quantity}      总额: {total_amount:.2f}")
# 打印折扣率和折后总额，格式化右对齐
print(f"折扣率: {discount_rate*100}折    折后总额: {discounted_amount:.2f}")
# 打印实收和找零，格式化右对齐
print(f"实收: {received:.2f}        找零: {change:.2f}")
# 打印收银人员
print("收银: 管理员")
# 打印分隔符
print("." * 30)